package org.zero.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

/**
 * RequestMapping也可以注解到类上，指定url的一级路径
 *
 * @author Zero
 */
@Controller
@RequestMapping("/request_mapping")
public class RequestMappingController {
    /**
     * RequestMapping：
     * 作用：建立请求 URL 和请求处理方法之间的联系
     * 属性：
     * path：同value一样，指定请求 URL
     * method：指定请求类型
     * params：指定限制请求参数条件
     * headers：指定限制请求消息头条件
     */

    /**
     * 方法1只要请求URL正确就可访问
     *
     * @return
     */
    @RequestMapping("/method1")
    public String method1() {
        System.out.println("method1方法");
        return "success";
    }

    /**
     * 方法2请求类型必须为Post，否则请求不成功
     *
     * @return
     */
    @RequestMapping(path = "/method2", method = RequestMethod.POST)
    public String method2() {
        System.out.println("method2方法");
        return "success";
    }

    /**
     * 方法3请求参数中必须有名为<b>param</b>的参数，否则请求不成功
     *
     * @return
     */
    @RequestMapping(path = "/method3", params = "param")
    public String method3() {
        System.out.println("method3方法");
        return "success";
    }

    /**
     * 方法4请求参数中必须有<b>param=aaa</b>的参数，否则请求不成功
     *
     * @return
     */
    @RequestMapping(path = "/method4", params = "param=aaa")
    public String method4() {
        System.out.println("method4方法");
        return "success";
    }

    /**
     * 方法5请求头中必须有<b>User-Agent</b>的参数，否则请求不成功
     *
     * @return
     */
    @RequestMapping(path = "/method5", headers = "User-Agent")
    public String method5() {
        System.out.println("method5方法");
        return "success";
    }
}
